/*{
"CREDIT": "by VIDVOX",
"ISFVSN": "2",
"CATEGORIES": [
"Color Effect"
],
"INPUTS": [
{
"NAME": "inputImage",
"TYPE": "image"
},
{
"LABEL": "Red",
"NAME": "redInput",
"TYPE": "long",
"VALUES": [
0,
1,
2,
3,
4
],
"LABELS": [
"R",
"G",
"B",
"A",
"Average"
],
"DEFAULT": 0
},
{
"LABEL": "Green",
"NAME": "greenInput",
"TYPE": "long",
"VALUES": [
0,
1,
2,
3,
4
],
"LABELS": [
"R",
"G",
"B",
"A",
"Average"
],
"DEFAULT": 1
},
{
"LABEL": "Blue",
"NAME": "blueInput",
"TYPE": "long",
"VALUES": [
0,
1,
2,
3,
4
],
"LABELS": [
"R",
"G",
"B",
"A",
"Average"
],
"DEFAULT": 2
},
{
"LABEL": "Alpha",
"NAME": "alphaInput",
"TYPE": "long",
"VALUES": [
0,
1,
2,
3,
4
],
"LABELS": [
"R",
"G",
"B",
"A",
"Average"
],
"DEFAULT": 3
}
]
}*/
void main() {
vec4 srcPixel = IMG_THIS_PIXEL(inputImage);
vec4 outputPixel = srcPixel;
float avgVal = (srcPixel.r + srcPixel.g + srcPixel.b) * srcPixel.a / 3.0;
if (redInput == 0) {
outputPixel.r = srcPixel.r;
}
else if (redInput == 1) {
outputPixel.r = srcPixel.g;
}
else if (redInput == 2) {
outputPixel.r = srcPixel.b;
}
else if (redInput == 3) {
outputPixel.r = srcPixel.a;
}
else if (redInput == 4) {
outputPixel.r = avgVal;
}
if (greenInput == 0) {
outputPixel.g = srcPixel.r;
}
else if (greenInput == 1) {
outputPixel.g = srcPixel.g;
}
else if (greenInput == 2) {
outputPixel.g = srcPixel.b;
}
else if (greenInput == 3) {
outputPixel.g = srcPixel.a;
}
else if (greenInput == 4) {
outputPixel.g = avgVal;
}
if (blueInput == 0) {
outputPixel.b = srcPixel.r;
}
else if (blueInput == 1) {
outputPixel.b = srcPixel.g;
}
else if (blueInput == 2) {
outputPixel.b = srcPixel.b;
}
else if (blueInput == 3) {
outputPixel.b = srcPixel.a;
}
else if (blueInput == 4) {
outputPixel.b = avgVal;
}
if (alphaInput == 0) {
outputPixel.a = srcPixel.r;
}
else if (alphaInput == 1) {
outputPixel.a = srcPixel.g;
}
else if (alphaInput == 2) {
outputPixel.a = srcPixel.b;
}
else if (alphaInput == 3) {
outputPixel.a = srcPixel.a;
}
else if (alphaInput == 4) {
outputPixel.a = avgVal;
}
gl_FragColor = outputPixel;
}